package Aleehot100;

/**
 * ClassName: c066
 * Package: Aleehot100
 * Description: 33. 搜索旋转排序数组
 *
 * @Author BCXJ
 * @Create 2025/8/15 08:46
 * @Version 1.0
 * @Since 1.0
 */
public class c066 {
    public static void main(String[] args) {

    }

    public static int search(int[] nums, int target) {
        int l = 0, r = nums.length, mid = 0;

        while(l <= r) {
            mid = l + ((r - l ) >> 1);
            if(target == nums[mid]) {
                return mid;
            }
            //  进入有序的分支
            // 左半边是有序的
            if(nums[l] <= nums[mid]) {
                // target可能在左半边
                if(target >= nums[l] && target <= nums[mid]) {
                    r = mid - 1;
                } else { //target可能 在有右边
                    l = mid + 1;
                }
            }
            // 右半边有序
            else {
                // target可能在右半边
                if(target >= nums[mid] && target <= nums[r]) {
                    l = mid + 1;
                } else { // target可能在左半边
                    r = mid - 1;
                }
            }
        }
        return -1;
    }
}
